package com.zenithmind.document.pojo.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zenithmind.common.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 文档版本实体类
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("document_version")
@Schema(description = "文档版本实体")
public class DocumentVersion extends BaseEntity {

    /**
     * 文档ID
     */
    @TableField("document_id")
    @Schema(description = "文档ID")
    private String documentId;

    /**
     * 版本号
     */
    @TableField("version_number")
    @Schema(description = "版本号")
    private String versionNumber;

    /**
     * 版本名称
     */
    @TableField("version_name")
    @Schema(description = "版本名称")
    private String versionName;

    /**
     * 版本描述
     */
    @TableField("description")
    @Schema(description = "版本描述")
    private String description;

    /**
     * 文件路径
     */
    @TableField("file_path")
    @Schema(description = "文件路径")
    private String filePath;

    /**
     * 文件URL
     */
    @TableField("file_url")
    @Schema(description = "文件URL")
    private String fileUrl;

    /**
     * 文件大小
     */
    @TableField("file_size")
    @Schema(description = "文件大小")
    private Long fileSize;

    /**
     * MD5哈希值
     */
    @TableField("md5_hash")
    @Schema(description = "MD5哈希值")
    private String md5Hash;

    /**
     * 是否为当前版本
     */
    @TableField("is_current")
    @Schema(description = "是否为当前版本")
    private Integer isCurrent;

    /**
     * 变更类型（1:新增, 2:修改, 3:删除, 4:恢复）
     */
    @TableField("change_type")
    @Schema(description = "变更类型")
    private Integer changeType;

    /**
     * 变更说明
     */
    @TableField("change_log")
    @Schema(description = "变更说明")
    private String changeLog;

    /**
     * 创建者ID
     */
    @TableField("creator_id")
    @Schema(description = "创建者ID")
    private String creatorId;
}
